home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / slaqtr.z / slaqtr
Text File  |  1996-03-14  |  4KB  |  133 lines

  1.  
  2.  
  3.  
  4. SSSSLLLLAAAAQQQQTTTTRRRR((((3333FFFF))))                                                          SSSSLLLLAAAAQQQQTTTTRRRR((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SLAQTR - solve the real quasi-triangular system   op(T)*p = scale*c, if
  10.      LREAL = .TRUE
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE SLAQTR( LTRAN, LREAL, N, T, LDT, B, W, SCALE, X, WORK, INFO )
  14.  
  15.          LOGICAL        LREAL, LTRAN
  16.  
  17.          INTEGER        INFO, LDT, N
  18.  
  19.          REAL           SCALE, W
  20.  
  21.          REAL           B( * ), T( LDT, * ), WORK( * ), X( * )
  22.  
  23. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  24.      SLAQTR solves the real quasi-triangular system
  25.  
  26.      or the complex quasi-triangular systems
  27.  
  28.                 op(T + iB)*(p+iq) = scale*(c+id),  if LREAL = .FALSE.
  29.  
  30.      in real arithmetic, where T is upper quasi-triangular.
  31.      If LREAL = .FALSE., then the first diagonal block of T must be 1 by 1, B
  32.      is the specially structured matrix
  33.  
  34.                     B = [ b(1) b(2) ... b(n) ]
  35.                         [       w            ]
  36.                         [           w        ]
  37.                         [              .     ]
  38.                         [                 w  ]
  39.  
  40.      op(A) = A or A', A' denotes the conjugate transpose of
  41.      matrix A.
  42.  
  43.      On input, X = [ c ].  On output, X = [ p ].
  44.                    [ d ]                  [ q ]
  45.  
  46.      This subroutine is designed for the condition number estimation in
  47.      routine STRSNA.
  48.  
  49.  
  50. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  51.      LTRAN   (input) LOGICAL
  52.              On entry, LTRAN specifies the option of conjugate transpose:  =
  53.              .FALSE.,    op(T+i*B) = T+i*B, = .TRUE.,     op(T+i*B) =
  54.              (T+i*B)'.
  55.  
  56.      LREAL   (input) LOGICAL
  57.              On entry, LREAL specifies the input matrix structure:  = .FALSE.,
  58.              the input is complex = .TRUE.,     the input is real
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSLLLLAAAAQQQQTTTTRRRR((((3333FFFF))))                                                          SSSSLLLLAAAAQQQQTTTTRRRR((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      N       (input) INTEGER
  75.              On entry, N specifies the order of T+i*B. N >= 0.
  76.  
  77.      T       (input) REAL array, dimension (LDT,N)
  78.              On entry, T contains a matrix in Schur canonical form.  If LREAL
  79.              = .FALSE., then the first diagonal block of T must be 1 by 1.
  80.  
  81.      LDT     (input) INTEGER
  82.              The leading dimension of the matrix T. LDT >= max(1,N).
  83.  
  84.      B       (input) REAL array, dimension (N)
  85.              On entry, B contains the elements to form the matrix B as
  86.              described above.  If LREAL = .TRUE., B is not referenced.
  87.  
  88.      W       (input) REAL
  89.              On entry, W is the diagonal element of the matrix B.  If LREAL =
  90.              .TRUE., W is not referenced.
  91.  
  92.      SCALE   (output) REAL
  93.              On exit, SCALE is the scale factor.
  94.  
  95.      X       (input/output) REAL array, dimension (2*N)
  96.              On entry, X contains the right hand side of the system.  On exit,
  97.              X is overwritten by the solution.
  98.  
  99.      WORK    (workspace) REAL array, dimension (N)
  100.  
  101.      INFO    (output) INTEGER
  102.              On exit, INFO is set to 0: successful exit.
  103.              1: the some diagonal 1 by 1 block has been perturbed by a small
  104.              number SMIN to keep nonsingularity.  2: the some diagonal 2 by 2
  105.              block has been perturbed by a small number in SLALN2 to keep
  106.              nonsingularity.  NOTE: In the interests of speed, this routine
  107.              does not check the inputs for errors.
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.